The Internet is designed to share capacity among multiple users and multiple services. For efficiency, multiple users may dynamically share Internet capacity and multiple services may share the same network links and routers, instead of using dedicated capacity or using separate links and routers. A peak demand of users or services sharing Internet bandwidth may occasionally cause operation at a level that exceeds the available bandwidth or capacity. Congestion management is important for reasonable access and use of the Internet.
A shared Internet connection may consist of multiple service tiers. For example, a typical shared Internet connection may consist of multiple tiers with each tier having a maximum rate between 10 Mbps to 200 Mbps. The goal of quality of service (QoS) is to provide priority including dedicated bandwidth, controlled jitter and latency (required by some real-time and interactive traffic), and improved loss characteristics. Also important is making sure that providing priority for one or more flows does not make other flows fail.
A service flow represents either an upstream or a downstream flow of data. A flow can be defined in a number of ways. One common way refers to a combination of source and destination addresses, source and destination socket numbers, and the session identifier. It can also be defined more broadly as any packet from a certain application or from an incoming interface. Different service flows may accommodate different types of applications. For example, web and email may use one service flow, voice over IP (VoIP) may use another, and Internet gaming may use yet another service flow. In such a scenario, the characteristics of each service flow may be different in order to provide an appropriate type of service for each of these applications.
For a catch-all service flow, which may be addressed by the disclosed techniques, a typical usage includes all traffic destined for a particular modem, sorted into a number of service flows. For example, the service-flows may include high priority service-flow, for management purposes (MAC Management Messages to alter a configuration of service flows, etc). The high priority service-flow may carry insignificant traffic. The service flows may include a number of service flows for specific applications, such as VoIP, gaming, Video on Demand, etc. These flows may be identified based on DSCP markings of packets, source IP address, or any other parameter that a cable operator configures. The service-flows may include the above and any remaining traffic assigned to a High Speed Data service-flow, which is often how most traffic is transmitted between a headend and modem. Further, the above service-flows may all be present for both the upstream direction and separately for the downstream direction.
Distributing bandwidth in an Internet network may include scheduling a plurality of service flows in the upstream and/or the downstream. For example, a DOCSIS-compliant CMTS can provide different upstream scheduling modes for different packet streams or applications through the concept of a service flow. Each service flow is a flow of packets that may conform to a particular QoS and scheduling may be based on the QoS of a service flow. For example, each service flow can have its own quality of service (QoS) parameters, for example, maximum throughput, minimum guaranteed throughput and priority.
During congestion, a typical QoS mechanism is to divide the available bandwidth based on a percentage of the configured maximum rate or configured minimum reserved rate of each service-flow. For example, during severe link congestion, each service-flow may be adjusted to receive 10% of the configured maximum rate for the respective tier. Thus the bandwidth for the lowest service tier service-flows would be set at 1 Mbps whereas the bandwidth for the highest service tier service-flows would be set at 20 Mbps each.
However, a mix of service-flows having high maximum rates and low maximum rates can cause poor QoS for the service-flows with low maximum rates during channel congestion if all rates are scaled back linearly as congestion increases. The conventional solutions for adjusting bandwidth to the multiple services during periods of congestion result in an uneven distribution of bandwidth and the adjustments typically do not correlate well to the costs of services. For example, access to a higher service tier does not typically cost 20 times higher than rate for the lowest service tier. Thus, a 20:1 ratio of bandwidth distribution between the 200 Mbps and 10 Mbps tiers during congestion may be an undesirable consequence. Thus, light users may be at a disadvantage if their bitrate is scaled back linearly from a maximum rate during congestion similarly to heavy users.
Alternate solutions for distributing bandwidth between multiple tiers of service are desirable, particularly during periods of congestion.
It is noted that while the accompanying FIGS. serve to illustrate embodiments of concepts that include the claimed invention, and explain various principles and advantages of those embodiments, the concepts displayed are not necessary to understand the embodiments of the present invention, as the details depicted in the FIGS. would be readily apparent to those of ordinary skill in the art having the benefit of the description herein.